Dynamic control of authorization to access internet services

ABSTRACT

Programmable storage media including programmable software for managing authorization to access Internet services. A session object is created when a user logs onto a web site. The session object includes authorization-privilege information for N services. The user selects the service desired from the web site, at which point the server checks the session object. If the session object does not include authorization to access the selected service, the server consults a directory service. If the user is authorized according to the directory service, authorization-to-access information is incorporated into the session object. When authorization is conditional, a listener object is created within the session object. The listener object registers with a broadcast object and receives information germane to conditions of authorization. The listener object analyzes the information according to conditions of authorization, and terminates access to the selected service when conditions of authorization are not satisfied.

This application is a continuation application claiming priority to Ser.No. 09/947,103, filed Sep. 5, 2001 now U.S. Pat. No. 7,370,365.

FIELD OF THE INVENTION

The present invention relates generally to the field of Internetservices, and more particularly to a method of managing authorization toaccess services provided by Internet Service Providers and ApplicationService Providers.

BACKGROUND

Internet Service Providers (ISPs) and Application Service Providers(ASPs) offer a variety of services through the World Wide Web. As amatter of business practice, access to these services may be controlledto admit only users who meet certain qualifications or who haveestablished themselves as paying customers. In general, controllingaccess has two aspects—authentication and authorization. Authenticationis the process of verifying a user's identity, and is typicallysatisfied when the user proffers an account identifier such as a“USERID” and password. Authorization is the process of verifying thatthe user, once properly authenticated, has privilege to access aparticular service.

It is important to note that authorization decisions are binary. Thebinary nature of authorization—a user is either authorized to access aparticular service, or not—constrains the service provider's options.Rather than have all authorization decisions be binary decisions, aservice provider might prefer instead to authorize a particular user toaccess a selected service under certain conditions, and yet deny thesame user authorization to access the same service when conditionschange. For example, a service provider might make authorization toaccess a particular Internet service dependent upon time of day,granting around-the-clock authorization to access the service only tousers who agree to a premium billing rate, and granting other usersauthorization to access the service only at certain times of the day.

In principle, a condition of authorization such as time-of-daydependence might be imposed by adding a parameter to a user's directoryservices profile, and checking this parameter before grantingauthorization to access a selected service. For example, a particularuser's directory services profile might show that the user hasauthorization to access a chat room between 7:00 PM and 8:00 PM. Whensuch a user selected the chat room service, the current time of daywould be compared with the conditions of authorization in the user'sdirectory services profile, and authorization to access the chat roomwould be either granted or denied depending on the outcome of thecomparison.

A significant problem arises, however, when a user's authorization toaccess a service needs to be revoked mid-course through a session ratherthan denied at the beginning of the session. For example, the usermentioned above would be authorized to access the chat room at 7:25 PM.At 8:00 PM, however, the user's access to the chat room should berevoked or terminated.

Notwithstanding, revoking access is easier said than done. When aservice provider supports hundreds of thousands of users, considerationsof processing efficiency become paramount—with today's technology, it isnot practical to periodically poll hundreds of thousands of sessionobjects and variables to maintain globally correct access informationand access authorizations.

Thus, there is a need for a way of controlling authorization to accessInternet services that empowers service providers to manage sessionobjects efficiently and dynamically to grant, deny, andterminate-mid-course access authorizations for members of largepopulations of users, wherein a service provider does not incur theprocessing burden of periodically polling a large set of session objectsand access-control variables.

SUMMARY

The present invention provides an efficient way for Application ServiceProviders (ASPs) and Internet Service Providers (ISPs) to manage sessionobjects and to dynamically control authorization to access Internetservices. With the invention, a service provider may authorize access,deny access, or terminate access already granted mid-course asconditions change.

According to the present invention, when a user logs onto a web siteprovided by an Application Service Provider or an Internet ServiceProvider, the server supporting the web site creates a session objectfor that user. The session object may include the user's conditions ofauthorization for the N services most recently or most frequentlyaccessed by the user in the past. The user then selects the servicedesired from the service provider, at which point the server checks theuser's session object. If the session object includes authorization toaccess the selected service, and further if all the conditions ofauthorization are satisfied, the server begins the requested service;otherwise, the server consults a directory service to determine whetherthe user has authorization to access the selected service. If the userhas authorization to access the selected service, information regardingauthorization to access the selected service and any related conditionsof authorization are incorporated into the session object; otherwise,the user is denied access to the selected service.

Authorization to access a service may be conditional upon satisfactionof conditions of authorization. For example, the user's authorization toaccess the selected service may be limited to certain hours of the day.To manage authorization that is conditional, a listener object withinthe session object or otherwise associated with the session object iscreated. One purpose of the listener object is to terminate the user'saccess to the selected service when the conditions of authorization areno longer satisfied.

The listener object registers with a broadcast object that is managed bythe server, and receives, from the broadcast object, information germaneto conditions of authorization. From time to time, the broadcast objectbroadcasts information concerning conditions of authorization, forexample notifications of changes in conditions pertinent to determiningwhether conditions of authorization are satisfied. The listener objectreceives the information from the broadcast object, and analyzes theinformation in accord with the conditions of authorization applicable tothe particular user. When the conditions of authorization are satisfied,the server continues to provide the selected service, whereas if theparticular conditions of authorization are no longer satisfied, theserver denies or terminates access to the selected service.

As an illustration, an exemplary user might have authorization to accessa chat-room service only between 7:00 PM and 8:00 PM. On one occasion,the user might log onto the web site that offers the chat room serviceat 7:10 PM, and specify the chat room service as the selected service.The listener object would determine that the user had authorization toaccess the chat room at 7:10 PM, and instruct or permit the server toprovide the chat room service. During the course of the user's session,the listener object might receive information from the broadcast objectreporting time-of-day at 7:15 PM, 7:30 PM, 7:45 PM, and 8:00 PM. Thelistener object would analyze each time-of-day report received from thebroadcast object, and, in response to the 7:15, 7:30, and 7:45 reports,permit the user to continue participating in the chat room. Uponreceiving the 8:00 PM report, however, the listener object would notifythe server to terminate the user's access to the chat room, as theuser's conditions of authorization to access the chat room would nolonger be satisfied.

Thus, the present invention provides an efficient way to dynamicallymanage authorization to access Internet services by enabling thetermination of earlier-authorized access when conditions change, as wellas by granting and denying access. These and other aspects of theinvention will be more fully appreciated when considered in the light ofthe following detailed description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that shows structural aspects of an exemplaryembodiment of the present invention.

FIGS. 2A and 2B show a flowchart that depicts aspects of the operationof an exemplary embodiment of the present the invention.

DETAILED DESCRIPTION

FIG. 1 shows structural aspects of an exemplary embodiment of thepresent invention. In FIG. 1, a user 100 establishes a session with aservice provider's server 110, where the session involves communicationover the Internet 120 or other communication network. The user 100 mayinclude a web browser 105. The server 110 may connect directly orthrough the Internet 120 to a directory service 130 that suppliesconditions of authorization that must be satisfied in order for the user100 to have authorization to access a service provided by the server110. The server 110 and the directory service 130 may communicate usingLightweight Directory Access Protocol (LDAP), or the like.

As shown in FIG. 1, the server 110 includes a broadcast object 112, asession object 114, a listener object 116, and an application program118. The application program 118 provides a service selected by the user100; the functions of the broadcast object 112, the session object 114,and the listener object 116 are described below. Although FIG. 1 showsthe listener object 116 as internal to the session object 114, this isnot a necessary condition of the invention, as the listener object 116may be otherwise associated with the session object 114.

As shown in FIGS. 2A and 2B, the user 100 establishes a session with theserver 110 (step 200). The server 110 then retrieves a profile for theuser 100 from the directory service 130 (step 205). Using informationincluded in the profile, the server 110 creates the session object 114,which identifies N services selected in the past by the user 100, whereN is a positive integer (step 210). These may be the N services selectedmost recently by the user 100, or the N services selected mostfrequently by the user 100 over a predetermined historical period.

One purpose of the session object 114 is to identify the user 100 andits characteristics and privileges to the server 110 and to theapplication program 118 that is executed by the server 110 to providethe service selected by the user 100. Consequently, the session object114 may contain authorization-to-access information, includingconditions of authorization, that describe privileges of the user 100 toaccess (or not) the N services provided by the server 110.

Once a session is established, the user 100 selects a service to beprovided by the server 110, and the server 110 receives a request fromthe user 100 to access the selected service (step 215). The server 110then consults the session object 114 to determine whether the sessionobject 114 includes authorization to access the selected service (step220). If the session object 114 does not include authorization to accessthe selected service, the server 110 consults the directory service 130to determine if the user 100 has authorization to access the selectedservice (step 225). If the user 100 is found not to have authorizationto access the selected service, access may be denied gracefully, and theprocess ends (step 230). If the user 100 is found to have authorizationto access the selected service, information regarding the authorizationto access, including any condition of authorization, is incorporatedinto the session object 114 (step 235).

Otherwise (i.e., the session object 114 includes authorization to accessthe selected service, either a priori or after the step of incorporation(i.e., after step 235)), the server 110 determines whether authorizationto access the selected service is conditional, i.e., whetherauthorization to access the selected service is dependent upon dynamicconditions (step 240). For example, a condition of authorization mightspecify that the user 100 has authorization to access the selectedservice during certain hours of the day, or on certain days of the week,or when the server 110 is lightly loaded, or when a number of pointshave accrued in an award account such as a frequent-flyer miles account,when a debit account has not been exhausted, and so forth. Ifauthorization to access the selected service is determined not to beconditional, the selected service is provided (step 242), and continueduntil the user 100 ends the session (step 243).

Otherwise (i.e., authorization to access the selected service isdetermined to be conditional), a listener object 116 within the sessionobject 114 or otherwise associated with the session object 114 iscreated (step 245). The listener object 116 registers with theappropriate broadcast object 112 (step 250), and determines whether theconditions of authorization are satisfied (step 255). If the conditionsof authorization are not satisfied, access is denied, and the processends (step 265). Otherwise (i.e., the conditions of authorization aresatisfied) the selected service is begun (step 260).

The broadcast object 112 monitors selected conditions pertinent todetermining the satisfaction of conditions of authorization required ofthe user 100 (hence, the broadcast object 112 was called above the“appropriate” broadcast object 112), and sends information such asnotifications of changes in the selected conditions to its registeredlisteners. For example, a particular user's condition of authorizationmight be “authorization to access granted only between 7:00 PM and 8:00PM,” in which case the appropriate broadcast object 112 might include aclock that broadcasts time-of-day information every fifteen minutes.

The broadcast object 112 may send information in an event-driven manneraccording to changes in the selected conditions, or periodically, oraperiodically according to a predetermined schedule. Periodic andaperiodic broadcasts may also be thought of as being event-driven, inwhich case the passing of predetermined intervals of time would beconsidered to be events.

The listener object 116 awaits arrival of information from the broadcastobject 112 (step 270). Until such information arrives, the listenerobject 116 continues to wait (step 270). When information from thebroadcast object 112 arrives, the listener object 116 receives theinformation (step 275), and the listener object 116 analyzes theinformation in accord with the conditions of authorization applicable tothe user 100, i.e., the listener object 116 analyzes the information inaccord with the conditions of authorization in the session object 114(step 280).

If the conditions of authorization continue to be satisfied, the server110 continues to provide the selected service (step 285), and thelistener object 116 remains quiet while returning to await the arrivalof further information from the broadcast object 112 (step 270).Otherwise (i.e., the conditions of authorization are not satisfied), thelistener object 116 initiates an action. For example, the listenerobject 116 may notify the server 110 to terminate access to the selectedservice (step 290), after which the process ends (step 295).

From the foregoing description, those skilled in the art will recognizethat the present invention provides an efficient way of managingdynamic, conditional authorization to access an Internet serviceprovided by an Application Service Provider or an Internet ServiceProvider. The foregoing description is illustrative rather thanlimiting, however, and the present invention is limited only by thefollowing claims.

1. Programmable storage media containing programmable software formanaging authorization to access a service by a remote user who hasestablished a session with a server, said programmable softwarecomprising the steps of: retrieving, by the server, a profile of theuser from a directory service that is directly connected to the server;after said retrieving the profile of the user, creating a session objectthat identifies N services selected by the user in the past, whereinsaid creating is performed by the server using information included inthe retrieved profile of the user, wherein the session object isconfigured to identify the user, characteristics of the user, andprivileges of the user to the server and to an application program,wherein N is a positive integer, and wherein the server comprises thesession object; receiving, by the server from the user via acommunication network after said creating the session object, a requestfor the service to be provided to the user by execution of theapplication program by the server, wherein the server comprises theapplication program; after said receiving the request, ascertaining bythe server that the session object does not include a condition ofauthorization for the user to have access to the requested service;responsive to said ascertaining that the session object does not includethe condition of authorization, determining by the server fromconsultation with the directory service that the user has authorizationfor accessing the requested service; responsive to said determining thatthe user has authorization for accessing the requested service,receiving the condition of authorization from the directory servicefollowed by incorporating the received condition of authorization intothe session object; after said incorporating the condition ofauthorization into the session object, determining by the server thatthe authorization for the user to access the service is conditional withrespect to satisfaction of dynamic temporal conditions; responsive tosaid determining by the server that the authorization for the user toaccess the service is conditional with respect to satisfaction ofdynamic temporal conditions, creating a listener object within thesession object; after said creating the listener object, registering thelistener object with a broadcast object, wherein the server comprisesthe broadcast object, and wherein said registering is performed by thelistener object; receiving, by the listener object after saidregistering the listener object, information sent by the broadcastobject; determining, by the listener object from the informationreceived from the broadcast object, that the condition of authorizationis satisfied, followed by initiating execution of the applicationprogram by the server to provide the service to the user; after saidinitiating execution of the application program, receiving, by thelistener object from the broadcast object, condition informationrelating to the condition of authorization; analyzing, by the listenerobject, the received condition information to determine whether thecondition of authorization is satisfied; and if said analyzingdetermines that the condition of authorization is satisfied thencontinuing said execution of the application program, otherwise endingsaid execution of the application program.
 2. The programmable storagemedia claim 1, wherein the N services are the N services most recentlyselected by the user.
 3. The programmable storage media claim 1, whereinthe N services are the N services selected most frequently by the userin a predetermined historical period.